package com.anjiplus.template.gaea.business.work.data;

import com.anjiplus.template.gaea.business.work.data.entity.Data;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

/**
 * 存储类
 *
 * @author yxm
 */
public class Cache {

    /**
     * 存储全部数据列表
     */
    public static List<Data> dataList = new ArrayList<>();

    /**
     * 初始化值
     */
    public static void initCache() {
        for (int i = 0; i < dataList.size(); i++) {
            dataList.get(i).setValue("-");
        }
    }

    /**
     * 生成数据值
     */
    public static void buildData() {
        for (int i = 0; i < dataList.size(); i++) {
            String pointName = dataList.get(i).getPoint().getName();
            if (pointName.endsWith("浊度")) {
                // 0 - 0.03
                dataList.get(i).setValue(String.format("%.4f", Math.random() * 0.3));
            } else if (pointName.endsWith("余氯")) {
                // 0.3 - 1
                dataList.get(i).setValue(String.format("%.4f", 0.3 + Math.random() * 0.7));
            } else if (pointName.endsWith("压力")) {
                // 0.25 - 0.4
                dataList.get(i).setValue(String.format("%.4f", 0.25 + Math.random() * 0.15));
            } else if (pointName.endsWith("PH")) {
                // 6.5 - 8.5
                dataList.get(i).setValue(String.format("%.4f", 6.5 + Math.random() * 2));
            } else if (pointName.endsWith("累计流量")) {
                // 10000 - 100000
                dataList.get(i).setValue(String.format("%.0f", 10000 + Math.random() * 90000));
            } else if (pointName.endsWith("瞬时流量")) {
                // 100 - 500
                dataList.get(i).setValue(String.format("%.4f", 100 + Math.random() * 400));
            } else if (pointName.endsWith("状态")) {
                // 0 || 1
                dataList.get(i).setValue(Math.random() > 0.9 ? "0" : "1");
            } else if (pointName.endsWith("就地")) {
                // 0 || 1
                dataList.get(i).setValue(Math.random() > 0.9 ? "0" : "1");
            } else if (pointName.endsWith("到位")) {
                // 0 || 1
                dataList.get(i).setValue(Math.random() > 0.9 ? "0" : "1");
            } else if (pointName.endsWith("故障")) {
                // 0 || 1
                dataList.get(i).setValue(Math.random() > 0.9 ? "0" : "1");
            } else if (pointName.endsWith("反馈")) {
                // 0 || 1
                dataList.get(i).setValue(Math.random() > 0.9 ? "0" : "1");
            } else if (pointName.endsWith("运行")) {
                // 0 || 1
                dataList.get(i).setValue(Math.random() > 0.9 ? "0" : "1");
            } else if (pointName.endsWith("液位")) {
                // 0 - 4
                dataList.get(i).setValue(String.format("%.2f", Math.random() * 4));
            } else if (pointName.endsWith("时钟年")) {
                // 当前年
                dataList.get(i).setValue(Calendar.getInstance().get(Calendar.YEAR) + "");
            } else if (pointName.endsWith("时钟月")) {
                // 当前月
                dataList.get(i).setValue(Calendar.getInstance().get(Calendar.MONTH) + 1 + "");
            } else if (pointName.endsWith("时钟日")) {
                // 当前日
                dataList.get(i).setValue(Calendar.getInstance().get(Calendar.DAY_OF_MONTH) + "");
            } else if (pointName.endsWith("时钟时")) {
                // 当前时
                dataList.get(i).setValue(Calendar.getInstance().get(Calendar.HOUR_OF_DAY) + "");
            } else if (pointName.endsWith("时钟分")) {
                // 当前分
                dataList.get(i).setValue(Calendar.getInstance().get(Calendar.MINUTE) + "");
            } else if (pointName.endsWith("时钟秒")) {
                // 当前秒
                dataList.get(i).setValue(Calendar.getInstance().get(Calendar.SECOND) + "");
            } else if (pointName.endsWith("开阀")) {
                // 0 || 1
                dataList.get(i).setValue(Math.random() > 0.9 ? "0" : "1");
            } else if (pointName.endsWith("关阀")) {
                // 0 || 1
                dataList.get(i).setValue(Math.random() > 0.9 ? "1" : "0");
            } else if (pointName.endsWith("开启/关闭")) {
                // 0 || 1
                dataList.get(i).setValue(Math.random() > 0.9 ? "0" : "1");
            } else if (pointName.endsWith("开度控制")) {
                // 0 - 100
                dataList.get(i).setValue(String.format("%.2f", Math.random() * 100));
            } else if (pointName.endsWith("开度")) {
                // 0 - 100
                dataList.get(i).setValue(String.format("%.2f", Math.random() * 100));
            } else if (pointName.endsWith("电动阀控制")) {
                // 0 - 100
                dataList.get(i).setValue(String.format("%.2f", Math.random() * 100));
            } else if (pointName.endsWith("时间")) {
                // 100 - 1000
                dataList.get(i).setValue(String.format("%.0f", 100 + Math.random() * 900));
            } else if (pointName.endsWith("电导率")) {
                // 100 - 500
                dataList.get(i).setValue(String.format("%.2f", 100 + Math.random() * 400));
            } else if (pointName.endsWith("小时")) {
                // 0 - 23
                dataList.get(i).setValue(String.format("%.0f", Math.random() * 23));
            } else if (pointName.endsWith("分钟")) {
                // 0 - 59
                dataList.get(i).setValue(String.format("%.0f", Math.random() * 59));
            }
        }
    }

}
